// 分类模块
import { topCategory } from '@/api/constants'
import { findAllCategory } from '@/api/category'

export default {
    namespaced: true,
    state: () => {
        return {
            // 如果默认是[]数组，看不见默认的9个分类，等你数据加载完毕才会看到。
            // 所以：根据常量数据来生成一个默认的顶级分类数据，不会出现空白（没数据的情况）
            list: topCategory.map(item => ({ name: item }))
        }
    },
    mutations: {
        //设置分类列表
        setList(state, headCategory) {
            state.list = headCategory
            // console.log(state.list,'list');
        },
        // 定义show和hide函数，控制当前分类的二级分类显示和隐藏
        show(state, id) {
            const currCategory = state.list.find(item => item.id === id) 
            currCategory.open = true
        },
        hide(state, id) {
            const currCategory = state.list.find(item => item.id === id) 
            currCategory.open = false
        }
    },
    // 需要向后台加载数据，所以需要actions函数获取数据
    actions: {
        async getList({ commit }) {
            const { result } = await findAllCategory()
            // 给一级分类加上一个控制二级分类显示隐藏的数据open
            result.forEach(item => {
                item.open = false
            })
            // 获取数据成功，提交mutations进行数据修改
            commit('setList', result)
        }
    }
}